Electronic payments may be performed in a variety of ways. A payment terminal may process payment transactions, and may interact with payment devices such as a payment card having a magnetic strip that is swiped in a magnetic reader of the payment terminal, a payment device having a Europay/Mastercard/Visa (EMV) chip that is dipped into corresponding EMV slot of the payment terminal, and near field communication (NFC) enabled devices such as a smartphone or EMV card that is tapped at the payment terminal and transmits payment information over a secure wireless connection. The payment terminal may receive payment information from the payment device as well information about a transaction, and may communicate this information to a payment system for processing of the transaction.
To support processing of payment transactions, payment terminals generally may operate using various electronic components. Many components of payment terminals may contain instructions, such as instructions that generally allow the payment terminal to carry out operations for processing payment transactions. The instructions may include a boot loader that initialized the payment terminal and one or more firmware modules that control the operation of the payment terminal and various components thereof.
From time-to-time, the firmware of the payment terminal or of particular components thereof may require updating, for example, to enhance security, implement additional functionality, and fix bugs. It may be desired to deliver the firmware update to the payment terminal over a network, as opposed to delivering the firmware update via a physical memory device such as a memory stick. However, a payment terminal may be located at a remote location, such as at a merchant operating a store at a fixed location, or in some cases, at a traveling merchant such as a taxi driver, food truck, repairman, or medical professional. Accordingly, such a payment terminal may only be in communication with a network relatively infrequently.